#include<iostream>
#include<set>
#include<algorithm>
using namespace std;
const int P = 511;

int mkHash(string str) {
    return (str[0] + str[1]) % P;
} 

int main() {
    int n, ans = 0;
    string s, s2;
    set<pair<int, int> > st1;
    set<pair<int, int> > st2;
    cin >> n;
    while(n--) {
        pair<int, int> pr;
        cin >> s >> s2;
        pr.first = mkHash(s);
        pr.second = mkHash(s2);
        if(pr.first != pr.second) {
            if(st2.count(pr))   ans++;
            st1.insert(pr);
            swap(pr.first, pr.second);
            st2.insert(pr);
        }
    }
    cout << ans << endl;
    return 0;
} 

// bool isPrime(int x) {
//     for(int i=2; i*i<=x; i++) {
//         if(x % i == 0)  return false;
//     }
//     return true;
// }

// int main() {
//     int a = 2e5;
//     for(int i=a; i>1; i--)
//         if(isPrime(i)) {
//             cout << i;
//             return 0;
//         }
//     return 0;
// }